layui.config({
    base : "/js/"
}).extend({
    "mframe" : "mframe"
})
layui.use(['form','layer','laydate','table','mframe'],function(){
    var form = layui.form,
        layer = parent.layer === undefined ? layui.layer : top.layer,
        $ = layui.jquery,
        laydate = layui.laydate,
        mframe = layui.mframe,
        table = layui.table;
    
	var prefix = ctx + "monitor/online";
    var datas = mframe.Dic.getDicList("monitor:online:forceLogout");
    
	var tableIns = table.render({
	    elem: '#layui-table',
	    url:  prefix + '/list', //数据接口
	    page: true, //开启分页
	    autoSort: false, //禁用前端自动排序
	    method:"post",
	    response: {
	        statusName: 'code', //规定数据状态的字段名称，默认：code
	        statusCode: 0, //规定成功的状态码，默认：0
	        msgName: 'hint', //规定状态信息的字段名称，默认：msg
	        countName: 'total', //规定数据总数的字段名称，默认：count
	        dataName: 'rows' //规定数据列表的字段名称，默认：data
	    },
	    request: {
	        pageName: 'pageNum', //页码的参数名称，默认：page
	        limitName: 'pageSize' //每页数据量的参数名，默认：limit
	    },
	    where:{
	    	orderByColumn:'lastAccessTime',
	    	isAsc:'desc'
	    },
	    cols: [ 
	    [ 	{checkbox: true},
	    	{
	            field: 'sessionId',
	            title: '会话编号'
	        },
	        {
	            field: 'loginName',
	            title: '登录名称',
	        },
	        {
	            field: 'deptName',
	            title: '部门名称'
	        },
	        {
	            field: 'ipaddr',
	            title: '主机'
	        },
	        {
	            field: 'longinLocation',
	            title: '登录地点'
	        },
	        {
	            field: 'browser',
	            title: '浏览器'
	        },
	        {
	            field: 'os',
	            title: '操作系统'
	        },
	        {
	            field: 'status',
	            title: '会话状态',
	            align: 'center',
	            templet: function(e) {
	                if (e.status == 'on_line') {
	                    return '<span class="badge badge-primary">在线</span>';
	                } else if (e.status == 'off_line') {
	                    return '<span class="badge badge-danger">离线</span>';
	                }
	            }
	        },
	        {
	            field: 'startTimestamp',
	            title: '登录时间',
	            sort: true
	        },
	        {
	            field: 'lastAccessTime',
	            title: '最后访问时间',
	            sort: true
	        },
	        {
	            title: '操作',
	            align: 'center',
	            templet: function(e) {
	            	var a = [];
	            	a.push('<a class="layui-btn layui-btn-danger layui-btn-sm" lay-event="forceLogout">强退</a>');
	                return a.join("");
	            }
	        }]
	    ]
	  });
	
	//排序
	table.on('sort(test)', function(obj){ //注：tool是工具条事件名，test是table原始容器的属性 lay-filter="对应的值"
	  table.reload('layui-table', {
	    initSort: obj, //记录初始排序，如果不设的话，将无法标记表头的排序状态。 layui 2.1.1 新增参数
	    where: { //请求参数（注意：这里面的参数可任意定义，并非下面固定的格式）
	    	orderByColumn: obj.field, //排序字段   在接口作为参数字段  field order
	    	isAsc: obj.type //排序方式   在接口作为参数字段  field order
	    }
	  });
	});
	

    //搜索【此功能需要后台配合，所以暂时没有动态效果演示】
    $(".search_btn").on("click",function(){
        table.reload("layui-table",{
            page: {
            	pageNum: 1 //重新从第 1 页开始
            },
            where: {
            	searchValue: $(".searchVal").val()  //搜索的关键字
            }
        })
    });


    //列表操作
    table.on('tool(test)', function(obj){
    	var layEvent = obj.event,
            data = obj.data;
        if(layEvent === 'forceLogout'){ //强退
        	var url = prefix + "/forceLogout"
        	layer.confirm('确定要强制选中用户下线吗？', {icon: 3, title: '提示信息'}, function (index) {
            	var index = top.layer.msg('数据提交中，请稍候',{icon: 16,time:false,shade:0.8});
        	    $.ajax( {
        	        url: url,
        	        type: "post",
        	        dataType: "json",
        	        data: { "sessionId": data.sessionId },
        	        success: function(result) {
        	        	layer.close(index);
    	        		layer.msg(result.msg);
        	        	tableIns.reload();
        	        }
        	    })
            })
        } 
    });

})